package com.ruoyi.common.utils.uuid;

import com.ruoyi.common.constant.BusinessConstants;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;

public class NumberUtils {
    /**
     * 自动生成单据编号
     * @param number   单据编号
     * @param BusType  单据类型
     * @return
     */
    public static String autoGenericNumber(String number,String BusType) {
        String currPrefix = BusType + "-" + DateUtils.dateTimeNow("yyyy-MM-dd") + "-";
        final String num = "00001";
        if (StringUtils.isEmpty(number)) { //判断当前编号是否为空，如果为空，根据编码+yyyy-MM-dd+00001
            number = currPrefix + num;
        } else {
            String increment = number.substring(BusinessConstants.len);
            String prefix = number.substring(0, BusinessConstants.len);
            if (currPrefix.equals(prefix)) { //如果当前日期等于获取数据库中编号的日期 ，那么进行递增+1
                number = currPrefix + StringUtils.autoGenericCode(increment);
            } else { //否则编号从00001开始
                number = currPrefix + num;
            }

        }

        return number;
    }
}
